package com.dyylearn.arrays_;

import java.util.Arrays;
import java.util.List;

/**
 * @author green-citrus
 * @version 1.0
 */
public class ArraysMethod02 {
    public static void main(String[] args) {
        Integer[] arr = {1, 2, 90, 123, 567};
        //binarySearch 通过二分搜索法进行查找，要求必须排好序
        //1)使用 binarySearch 二叉查找
        //2)要求该数组是有序的。如果该数组是无序的，不能使用binarySearch
        //3)如果数组中不存在该元素，就返回-(low+1)
        int index = Arrays.binarySearch(arr, 1243);
        System.out.println("index=" + index);

        //copyOf 数组元素的复制
        //1.从 arr 数组中，拷贝 arr.Length个元素到 newArr数组中
        //2.如果拷贝的长度 > arr.length 就在新数组后面 增加 null
        //3.如果拷贝的长度 < 0 就抛异常
        Integer[] newArr = Arrays.copyOf(arr, arr.length);
        System.out.println("===拷贝执行完之后===");
        System.out.println(Arrays.toString(newArr));//[1, 2, 90, 123, 567]

        //fill 数组元素的填充
        Integer[] num = new Integer[]{9, 3, 2};
        Arrays.fill(num, 99);
        System.out.println("===num数组填充后===");
        System.out.println(Arrays.toString(num)); // [99, 99, 99]

        //equals 比较两个数组元素内容是否完全一致
        //1.如果arr 和 arr2 数组的元素一样，则方法返回true
        Integer[] arr2 = {1, 2, 90, 123, 567};
        boolean equals = Arrays.equals(arr, arr2);
        System.out.println("equals=" + equals);

        //asList 将一组值，转换成list
        //1.asList方法，会将(2, 3, 4, 5, 6, 1)数据转成一个List集合
        //2.返回 asList 编译类型 List接口
        //3.asList 运行类型 java.util.Arrays$ArrayList 是 Arrays类的静态内部类
        List<Integer> asList = Arrays.asList(2, 3, 4, 5, 6, 1);
        System.out.println("asList=" + asList);
        System.out.println("asList的运行类型" + asList.getClass());
    }
}
